Page({
  // 页面的初始数据
  data: {
    patient: [],  // 储存病人基本信息
    records: [],  // 存储会诊记录单
    medicine: [], // 存储医学影像
    medicine_count: 0, // 存储当前医学影像数量
    patient_id: '',   // 存储病人id
    flag_record: false, // 判断会诊记录单列表是否展开
    flag_imaging: false, // 判断医学影像列表是否展开
    bool_bottom: false // 判断什么时候到达底部
  },

  
  //生命周期函数--监听页面加载
  onLoad: function (options) {
    wx.showLoading({
      title: '加载中...',
      mask: true
    })
    // 获取病人基本信息
    wx.cloud.callFunction({
      name: 'wwxFuns3',
      data:({
        name: 'get_patient',
        patient_id: options.id
      })
    })
    .then(res => {
      //转换姓名格式
      wx.hideLoading()
      wx.cloud.callFunction({
        name: 'newModify', 
        data:({ 
          action:'user_get',
          id: res.result.patient_chief[0]
        })
      }).then(res => {
        this.setData({
          patient_chief: res.result.data[0].user_name,
        })
        console.log(res.result)
      })
      this.setData({
        patient: res.result,
        patient_id: options.id
      })
      console.log(res.result)
    })
    .catch(res => {
      console.log('error! huang')
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  // 生命周期函数--监听页面显示
  onShow: function (options) {
    var type = options;
    // 医学影像到底判断
    if(this.data.bool_bottom && type == '影像'){
      return
    }
    wx.showLoading({
      title: '加载中...',
      mask: true
    })
    
    // 获取会诊记录单
    if(type == '表单'){
      this.get_records()
    }
    // 获取医学影像
    else if(type == '影像'){
      this.get_medicine()
    }
    // 页面刷新处理
    else if(this.data.flag_record && this.data.flag_imaging){
      this.get_records()
      this.get_medicine()
    }
    else if(this.data.flag_record){
      this.get_records()
    }
    else if(this.data.flag_imaging){
      this.get_medicine()
    }
    // 出错处理
    else{
      wx.hideLoading()
      console.log('error')
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },


  // 页面上拉触底事件的处理函数
  onReachBottom: function () {
    // 如果触底且医学影像展开，再获取一次医学影像
    if(this.data.flag_imaging == true){
      this.onShow('影像')
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  // 新增会诊记录单
  addRecord: function(){
    wx.navigateTo({
      url: '../../pages/addMeetingRecord/addMeetingRecord?id='+this.data.patient_id+'&pageType=会诊'
    })
  },
  // 新增医学影像
  addImaging: function(){
    wx.navigateTo({
      url: '../../pages/addMeetingRecord/addMeetingRecord?id='+this.data.patient_id+'&pageType=影像'
    })
  },
  // 展开会诊记录单
  openRecord: function(){
    this.setData({
      flag_record: !this.data.flag_record
    })
    this.onShow('表单')
  },
  // 展开医学影像
  openImaging: function(){
    this.setData({
      flag_imaging: !this.data.flag_imaging
    })
    this.onShow('影像')
  },
  // 打开功能栏
  onOpen: function(event){
    var str_title;
    if(event.currentTarget.dataset.type == '表单'){
      str_title = "records[" + event.currentTarget.dataset.index + "].show";
    }else if(event.currentTarget.dataset.type == '影像'){
      str_title = "medicine[" + event.currentTarget.dataset.index + "].show";
    }
    
    this.setData({
      [str_title]:true
    })
  },
  // 关闭功能栏
  onClose(event) {
    var str_title;
    if(event.currentTarget.dataset.type == '表单'){
      str_title = "records[" + event.currentTarget.dataset.index + "].show";
    }else if(event.currentTarget.dataset.type == '影像'){
      str_title = "medicine[" + event.currentTarget.dataset.index + "].show";
    }

    this.setData({
      [str_title]:false 
    });
  },
  // 删除会诊记录单或医学影像
  delete(event){
    const that = this

    wx.showModal({
      title: '提示',
      content: '请确认删除',
      success (res) {
        // 确认删除
        if (res.confirm) {
          // 删除会诊记录单
          if(event.currentTarget.dataset.type == '表单'){
            // 调取云函数对病人进行删除
            wx.cloud.callFunction({
              name: 'wwxFuns3',
              data: {
                name: 'del_records',
                id: that.data.records[event.currentTarget.dataset.index]._id
              }
            })
            .then(res => {
              // 删除成功
              if(res.result.stats){
                wx.showToast({
                  title: '成功',
                  icon: 'success',
                  duration: 800
                })

                // 删除本地信息
                that.data.records.splice(event.currentTarget.dataset.index,1)
                that.setData({
                  records: that.data.records
                })

                // 在云端删除对应图片和视频
                var delete_cloud_list;
                for(var i=0; i<that.data.records[event.currentTarget.dataset.index].form_media.length; i++){
                  delete_cloud_list.push(that.data.records[event.currentTarget.dataset.index].form_media[i].url)
                }
                wx.cloud.deleteFile({fileList: delete_cloud_list})
              }
              // 删除失败
              else{
                console.log('error');
              }
          })
          .catch(res => {})
          }
          // 删除医学影像
          else if(event.currentTarget.dataset.type == '影像'){
            // 调取云函数对病人进行删除
            wx.cloud.callFunction({
              name: 'wwxFuns3',
              data: {
                name: 'del_records',
                id: that.data.medicine[event.currentTarget.dataset.index]._id
              }
            })
            .then(res => {
              // 删除成功
              if(res.result.stats){
                wx.showToast({
                  title: '成功',
                  icon: 'success',
                  duration: 800
                })

                // 删除本地信息
                that.data.medicine.splice(event.currentTarget.dataset.index,1)
                that.setData({
                  medicine: that.data.medicine
                })

                // 在云端删除对应图片和视频
                var delete_cloud_list;
                for(var i=0; i<that.data.medicine[event.currentTarget.dataset.index].form_media.length; i++){
                  delete_cloud_list.push(that.data.medicine[event.currentTarget.dataset.index].form_media[i].url)
                }
                wx.cloud.deleteFile({fileList: delete_cloud_list})
              }
              // 删除失败
              else{
                console.log('error');
              }
            })
            .catch(res => {})
          }
        } 
        // 取消删除
        else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })
    
  },
  // 修改会诊记录单或医学影像
  change(event){
    // 修改会诊记录单
    if(event.currentTarget.dataset.type == '表单'){
      wx.navigateTo({
        url: '../../pages/changeMeetingRecord/changeMeetingRecord?id='+this.data.records[event.currentTarget.dataset.index]._id+'&pageType=表单'
      })
    }
    // 修改医学影像
    else if(event.currentTarget.dataset.type == '影像'){
      wx.navigateTo({
        url: '../../pages/changeMeetingRecord/changeMeetingRecord?id='+this.data.medicine[event.currentTarget.dataset.index]._id+'&pageType=影像'
      })
    }
  },
  // 通过媒体列表预览图片或视频
  showMedia(res){
    var card = res.currentTarget.dataset.card
    var photo = res.currentTarget.dataset.photo
    if(res.currentTarget.dataset.type == '表单'){
      wx.previewMedia({
        sources: this.data.records[card].form_media,
        current: photo
      })
    }
    else if(res.currentTarget.dataset.type == '影像'){
      wx.previewMedia({
        sources: this.data.medicine[card].form_media,
        current: photo
      })
    }
    
  },
  // 获取会诊记录单
  get_records(){
    wx.cloud.callFunction({
      name: 'wwxFuns3',
      data:({
        name: 'get_records',
        patient_id: this.data.patient_id
      })
    })
    .then(res => {
      wx.hideLoading()
      this.setData({
        records: res.result
      })
      console.log(res.result)
    })
    .catch(res => {
      console.log('error!')
    })
  },
  // 获取医学影像
  get_medicine(){
    console.log(this.data.medicine_count)
    var that = this
    wx.cloud.callFunction({
      name: 'wwxFuns3',
      data:({
        name: 'get_medicine',
        patient_id: this.data.patient_id,
        count: this.data.medicine_count
      })
    })
    .then(res => {
      wx.hideLoading()
      this.setData({
        medicine: that.data.medicine.concat(res.result),
        medicine_count: that.data.medicine_count+res.result.length
      })
      if(res.result.length<5){
        this.setData({
          bool_bottom: true
        })
      }
      console.log(res.result)
    })
    .catch(res => {
      console.log('error!')
    })
  },
  // 跳转到详细信息界面
  toDetial(){
    wx.navigateTo({
      url: '../../pages/checkDetial/checkDetial?id='+this.data.patient_id
    })
  }

})